Poxa, legal. Deixa eu ver se entendi direito kk
Essa spell seria da pasta "/spells/scripts/" ??
info
Grupo: Visconde
Registrado: 26/08/12
Posts: 318
Reputação: +118
Gênero: Masculino

Poxa, legal. Deixa eu ver se entendi direito kk
Essa spell seria da pasta "/spells/scripts/" ??
info
Grupo: Conde
Registrado: 23/05/17
Posts: 584
Reputação: +113
Gênero: Masculino
Char no Tibia: Não Tenho

Muito Bom, Obrigado por Postar.
10 minutos atrás, Noninhouh disse:Poxa, legal. Deixa eu ver se entendi direito kk
Essa spell seria da pasta "/spells/scripts/" ??
é uma fuãnço, pode ser utilizada em qualquer script ._.
info
Grupo: Visconde
Registrado: 26/08/12
Posts: 318
Reputação: +118
Gênero: Masculino

13 minutos atrás, Ceetros disse:é uma fuãnço, pode ser utilizada em qualquer script ._.
Minha dúvida é se quando eu usar essa função, a spell que vai puxar, será dessa pasta que eu falei
Editado Setembro 18 por Noninhouh
12 horas atrás, Noninhouh disse:Minha dúvida é se quando eu usar essa função, a spell que vai puxar, será dessa pasta que eu falei
spells.xml ![]()
info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino

Só algumas dicas de convenção, utilize a nomenclatura em inglês para manter o seus códigos organizados.
Você também pode melhorar a estrutura do seu código, por exemplo, não tem sentido alocar espaço para o nome da magia e depois verificar se a creature existe, pq se a creature não existir vc esta alocando espaço para o nome da magia sem necessidade, isso só vai gastar processamento e memoria do seu servidor, então vc primeiro verifica se a creature existe, caso ela exista vc vai para o segundo passo que é verificar se a spell existe, caso as 2 condições sejam verdadeiras vc executa o resto do código.
int LuaScriptInterface::luaCreatureCastSpell(lua_State* L)
{
//creature:castSpell(name)
Creature* creature = getUserdata<Creature>(L, 1)
if(!creature) {
lua_pushboolean(L, false);
return 1;
}
const std::string& spellName = getString(L, 2);
InstantSpell* spell = g_spells->getInstantSpellByName(spellName);
if(!spell) {
lua_pushboolean(L, false);
return 1;
}
Creature* target = creature->getAttackedCreature();
if(target)
spell->castSpell(creature, target);
else
spell->castSpell(creature, creature);
lua_pushboolean(L, true);
return 1;
}
@Ceetros Me parece que não funciona na atual versão do TFS confirma?
player:soltaMagia("magia1")
edit.: funciona, só que uma magia como avalanche precisa de target.
Editado Março 4 por otavio101
info
Grupo: Conde
Registrado: 14/07/10
Posts: 645
Reputação: +321
Gênero: Masculino
Olá, hoje eu vim postar a função
creature:soltaMagia("nomedamagia")
Para o TFS 1.X.
Bom, eu estou fazendo um Poketibia com base no TFS 1.3 e vou postar essa função para quem quiser seguir o mesmo.
Segue um exemplo de uso:
function onSay(player, words, param)
poke = player:getSummons()[1]
poke:soltaMagia(pokes[poke:getName()][1].name)
player:say(poke:getName().."use "..pokes[poke:getName()][1].name, TALKTYPE_ORANGE_1)
end
Em LUASCRIPT.CPP
Abaixo de
Adicione:
Logo abaixo da função:
Adicione:
Em luascript.h registre:
static int luaSoltaMagia(lua_State* L);
static int luaSoltaMagia(lua_State* L);Agora é só compilar a proveitar